//D:\软件工程期末项目\honghe-vue\src\utils\date.js
/**
 * 日期格式化工具函数 (JavaScript 版本)
 * @param {Date|string|number} date - 可被 Date 解析的时间值
 * @param {string} format - 格式字符串，默认 'YYYY-MM-DD'
 * @returns {string} 格式化后的日期字符串
 */
export function formatDate(date = new Date(), format = 'YYYY-MM-DD') {
  const d = new Date(date);
  if (isNaN(d.getTime())) throw new Error('Invalid date');

  const padZero = num => num.toString().padStart(2, '0');

  return format
    .replace(/YYYY/g, d.getFullYear())
    .replace(/MM/g, padZero(d.getMonth() + 1))
    .replace(/DD/g, padZero(d.getDate()))
    .replace(/HH/g, padZero(d.getHours()))
    .replace(/mm/g, padZero(d.getMinutes()))
    .replace(/ss/g, padZero(d.getSeconds()));
}
export function formatDate1(date, format = 'YYYY-MM-DD HH:mm:ss') {
  if (!date) return '--'
  const dt = new Date(date)
  const formatObj = {
    YYYY: dt.getFullYear(),
    MM: String(dt.getMonth() + 1).padStart(2, '0'),
    DD: String(dt.getDate()).padStart(2, '0'),
    HH: String(dt.getHours()).padStart(2, '0'),
    mm: String(dt.getMinutes()).padStart(2, '0'),
    ss: String(dt.getSeconds()).padStart(2, '0')
  }
  return format.replace(/(YYYY|MM|DD|HH|mm|ss)/g, (match) => formatObj[match])
}
export function formatFileSize(bytes) {
  if (bytes === null || bytes === undefined || bytes === '') return '';
  bytes = parseInt(bytes);
  if (isNaN(bytes)) return '';
  
  const units = ['B', 'KB', 'MB', 'GB', 'TB'];
  let size = bytes;
  let unitIndex = 0;
  
  while (size >= 1024 && unitIndex < units.length - 1) {
    size /= 1024;
    unitIndex++;
  }
  
  return `${size.toFixed(2)} ${units[unitIndex]}`;
}
// src/utils/date.js（新增函数）
/**
 * 格式化数字为千分位格式（如：10000 → 10,000.00）
 * @param {number} num - 要格式化的数字
 * @param {number} decimal - 保留的小数位数，默认 2 位
 * @returns {string} 格式化后的字符串
 */
export function formatNumber(num, decimal = 2) {
  if (isNaN(Number(num))) return '0.00'; // 处理非数字情况
  return Number(num)
    .toFixed(decimal) // 保留小数
    .replace(/\d{1,3}(?=(\d{3})+\.)/g, (s) => `${s},`); // 添加千分位逗号
}
export function formatNumber1(num, decimal = 2) {
  if (isNaN(Number(num))) return '0.00'; // 处理非数字情况
  return Number(num)
    .toFixed(decimal) // 保留小数
    .replace(/\d{1,3}(?=(\d{3})+\.)/g, (s) => `${s},`); // 添加千分位逗号
}
// 也可以统一导出
export default {
  formatDate1,
  formatDate,
  formatFileSize,
  formatNumber,
  formatNumber1
};